// 部门列表转为树形结构的思路:
// 1.如果pid为空，说明当前部门是一级部门
// 2.如果pid不为空，判断谁的id与当前部门的pid一致，如果全等，
// 说明当前id这个部门是pid部门的爹，给爹部门添加children

// 注意：对于树形结构的处理，常用手段就是函数的递归

// 列表转树
// list:待转换的列表
// pid:查找几级部门

export function list2Tree(list, pid) {
  // 带children的数组一般称为树形数组
  // 存储结构的数组
  const arr = []
  // 遍历数组
  // 查找二级部门

  // 函数递归,查找item的子部门
  list.forEach(item => {
    if (item.pid === pid) {
      // 查找一级部门
      arr.push(item)
      const children = list2Tree(list, item.id)
      // 如果children不为空,说明item有子部门,需要给item添加children属性
      if (children.length) {
        item.children = children
      }
    }
  })
  // 返回结果数组
  return arr
}
